<?php

require_once("/var/www/AppResiduos2/config/BaseDatosPDO.php");
require_once("/var/www/AppResiduos2/lib/model/Usuario.php");

class UsuarioDAO{

        var $conexion;

        public function  __construct() {
            try{
                $bd = new BaseDatosPDO("localhost", "phplogin", "root", "root");
                $this->conexion = $bd->conectar();
            } catch (PDOException $e){
                echo $e->getMessage();
            }
            $this->conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
            $this->conexion->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
        }


        /**
	Crea una nuevo registro en la tabla Usuario en la bd
	@param Usuario usuario
	*/
	public function nuevoUsuario($usuario){
            
            $query = $this->conexion->prepare("INSERT INTO users VALUES ('',?,?,?,?,?)");
            $param = array($usuario->fullname, $usuario->username, $usuario->password, $usuario->date, $usuario->privilege);
            $result = $query->execute($param);
        }

	/**
	Modifica una un registro de la tabla Usuario de la bd
	@param Usuario usuario
	*/
	public function modificarUsuario($usuario){
            $query = $this->conexion->prepare('UPDATE users SET username = ?, 
                password = ? WHERE id = ?');
            $result = $query->execute(array($usuario->username, $usuario->password,
                $usuario->id));

	}

	/**
	Elimina un registro de la tabla Usuario de la bd
	@param Usuario usuario
	*/
	public function eliminarUsuario($usuario){
            $query = $this->conexion->prepare('DELETE FROM users WHERE id = ?');
            $result = $query->execute(array($usuario->id));
	}

	/**
	Obtiene un registro de la tabla Usuario de la bd
	*/
	public function obtenerUsuario($usuario){
            //echo "<pre>";
            $query = $this->conexion->prepare('SELECT * FROM users WHERE id = ?');
            $query->execute(array($usuario->id));
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
            
	}

        /**
         * Obtiene un registro de la tabla Usuario de la bd
         * buscandolo por username.
         * @param String $username 
         */
        public function obtenerUsuarioPorUsername($username){
            //echo "<pre>";
            $query = $this->conexion->prepare('SELECT * FROM users WHERE username = ?');
            $query->execute(array($username));
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
        }

	/**
	Lista todos los registros de la tabla Usuario de la bd
	*/
	public function listarUsuarios(){

            //echo "<pre>";

            $sth = $this->conexion->query("SELECT * FROM users");
            $result = $sth->fetchAll(PDO::FETCH_OBJ);
            print_r($result);
            
	}


}

// Prueba1: Agregar usuario a bd
//$u = new Usuario;
//$u->fullname = "Dani";
//$u->username = "Dani79";
//$u->password = "holamundo";
//$u->date = "2011-04-27";
//$u->privilege = 2;
//$uDao = new UsuarioDAO;
//$uDao->nuevoUsuario($u);

// Prueba2: listar usuarios con PDO
//$uDao = new UsuarioDAO;
//$uDao->listarUsuarios();

// Prueba3: Eliminar usuario de bd
//$u = new Usuario;
//$u->id = 11;
//$uDao = new UsuarioDAO;
//$uDao->eliminarUsuario($u);

// Prueba4: Modificar username y password de usuario
//$u = new Usuario;
//$u->id = 48;
//$u->username = danielita;
//$u->password = vegana;
//$uDao = new UsuarioDAO;
//$uDao->modificarUsuario($u);

// Prueba 5: Obtener usuario por id
//$u = new Usuario;
//$u->id = 48;
//$uDao = new UsuarioDAO;
//print_r(sizeof($uDao->obtenerUsuario($u)));



?>
